15418
5744
Me gustaría mostrar artículos que pertenecen a diferentes clientes. A tal efecto, busco datos a través de una llamada ajax y luego agrupo los datos en función de cada cliente único. Luego agrego los datos agrupados a mi html.
La estructura de mis datos agrupados se ve así:
"John Doe": [
{
"Item_id": 1
"Item_name": "abc"
},
{
"Item_id": 2
"Item_name": "def"
},
],
"Fulano de tal":
{
"Item_id": 3
"Item_name": "ghi"
},
{
"Item_id": 4
"Item_name": "jkl"
},
]
Mi código se ve así:
$ .each (groupedData, function (clave, valor) {
$ ('. cust_items'). append (`

`+ tecla +`

N.º de artículo Nombre del artículo
`); $ .each (valor, función (ky, val) { $ ('# dataTable tbody'). append ( ` `+ ky +` `+ val.Item_name +` `); }); }); Me enfrento a un problema en el que todos los elementos se muestran debajo del primer cliente mientras que los datos se muestran correctamente en el segundo cliente.
Faltan comas después de que las propiedades y los objetos de la propiedad de Jane Doe no estén encerrados entre []. Considere cambiar su objeto groupedData ya que la sintaxis no es correcta.
Editar: También ajustó la cadena de la plantilla y también accedió a la tabla con identificación dinámica.
Muestra:
let groupedData = {
"John Doe": [{
"Item_id": 1,
"Item_name": "abc"
},
{
"Item_id": 2,
"Item_name": "def"
}
],
"Fulano de tal": [{
"Item_id": 3,
"Item_name": "ghi"
},
{
"Item_id": 4,
"Item_name": "jkl"
}
]
};
$ .each (groupedData, function (clave, valor) {
$ ('. cust_items'). append (`

$ {key}

N.º de artículo Nombre del artículo
`); $ .each (valor, función (ky, val) { $ (`#dataTable _ $ {key.split ('') .join ('_')} tbody`) .append ( ` $ {ky} $ {val.Item_name} `); }); });
| Llego un poco tarde a la fiesta, pero aquí hay una forma divertida y práctica de mostrar sus datos dinámicamente usando el elemento